package com.ruoyi.order.mapper;

import java.util.List;
import com.ruoyi.order.domain.UserCoupon;
import org.apache.ibatis.annotations.Param;

/**
 * 用户优惠券关联Mapper接口
 * 
 * @author ruoyi
 * @date 2025-07-10
 */
public interface UserCouponMapper 
{
    /**
     * 查询用户优惠券关联
     * 
     * @param ucId 用户优惠券关联主键
     * @return 用户优惠券关联
     */
    public UserCoupon selectUserCouponByUcId(Long ucId);

    /**
     * 查询用户优惠券关联列表
     * 
     * @param userCoupon 用户优惠券关联
     * @return 用户优惠券关联集合
     */
    public List<UserCoupon> selectUserCouponList(UserCoupon userCoupon);

    /**
     * 新增用户优惠券关联
     * 
     * @param userCoupon 用户优惠券关联
     * @return 结果
     */
    public int insertUserCoupon(UserCoupon userCoupon);

    /**
     * 修改用户优惠券关联
     * 
     * @param userCoupon 用户优惠券关联
     * @return 结果
     */
    public int updateUserCoupon(UserCoupon userCoupon);

    // 根据ucId修改优惠券状态
    public int updateUserCouponByUcId(@Param("ucId") Long ucId,@Param("orderStatus") Long orderStatus);

    /**
     * 删除用户优惠券关联
     * 
     * @param ucId 用户优惠券关联主键
     * @return 结果
     */
    public int deleteUserCouponByUcId(Long ucId);

    /**
     * 批量删除用户优惠券关联
     * 
     * @param ucIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserCouponByUcIds(Long[] ucIds);

    public UserCoupon selectByUserIdAndCouponId(@Param("uId") Long uId, @Param("cId") Long cId);

    public Long selectCountByUserIdAndCouponId(@Param("uId") Long uId, @Param("cId") Long cId);

    UserCoupon selectByUserIdAndCouponId2(@Param("userId") Long userId, @Param("cvId") Long cvId);
    UserCoupon selectByUserIdAndCouponId3(@Param("userId") Long userId, @Param("cvId") Long cvId);
}
